Spreading an incident data sequence of N symbols, denoted (d1, d2, . . . , dN), using a code or length (or spreading factor) Q, denoted cQ=(c1, c2, . . . , cQ), produces a sequence of length Q.N, which can be represented as follows:
(d1.c1, d1.c2, . . . , d1.cQ, d2.c1, d2.c2, . . . , dN.cQ)
where d1.c1 represents the multiplication of d1 by c1.
An alternative representation of the spread sequence of length Q.N is (d1.cQ, d2.cQ, . . . dN.cQ) where d1.cQ represents the product of the symbol d1 by the spreading code cQ.
A more general approach to spreading consists in having a different spreading code for each symbol of the input sequence, in which case the resulting spread sequence can be expressed in the form: (d1.cQ(1),d2.cQ(2), . . . ,dN.cQ(N)), CQ(1) being the spreading code associated with the symbol d1. All the spreading codes preferably have the same length Q so that the resulting spread sequence has the length Q.N.
FIG. 1 outlines the principle of spreading, Ts designating the basic period (or symbol period) of a non-spread sequence and Tc designating the basic period (or “chip” period) of a spread sequence, Ts and Tc being related by the equation Ts=Q.Tc. In the figure dn and dn+1 correspond to two successive symbols of a non-spread incoming sequence and d′l and d′l+1 correspond to two successive basic symbols (or “chips”) of the same spread symbol of the incoming sequence.
One benefit of the above systems is enabling a plurality of users to share the same frequency band by allocating different users different codes.
One important application is Code Division Multiple Access (CDMA) cellular mobile radio systems.
In these systems, a spread sequence is generally scrambled prior to transmission using a scrambling code (or sequence), for various reasons including in particular improved protection against interference, or to assure the confidentiality of the information transmitted.
The scrambling of an incoming sequence of L basic symbols or “chips”, denoted (d′1, d′2, . . . , d′L), by a scrambling sequence of length L, denoted (v1, v2, . . . , vL), produces a sequence of length L that can be represented as follows:
(d′1.v1, d′2.v2, . . . , d′L.vL)
The scrambling sequence can be a very long, typically pseudo-random sequence. A sequence of this kind protects against interfering signals by rendering them random, at least over the duration of said scrambling sequence.
The scrambling sequence can also be a short sequence, typically of length L equal to the length Q of the spreading code (or an integer multiple thereof), as shown in FIG. 2, which uses the same type of representation as FIG. 1, and in which d″l and d″l+1 designate two successive basic symbols (or “chips”) of the same spread and scrambled symbol of the incoming sequence. By allocating different scrambling sequences to cells re-using the same spreading codes, this in particular reduces interference between cells. One benefit of these short sequences is producing cyclostationary transmitted signals whose period is proportional to L, enabling efficient use of certain classes of algorithms, as described hereinafter. A description of cyclostationary signals can be found in the article “Exploitation of Spectral Redundancy in Cyclostationary Signals”, IEEE Signal Processing Magazine, April 1991, pp. 14-36, for example.
Interference between users in the same cell can be reduced by using a decoding algorithm at the receiver enabling interfering signals to be identified as such and therefore rejected, in particular on the basis of the signals received and a knowledge of the codes of the various users. Examples of such decoding algorithms are so-called subtractive detection algorithms or joint-detection algorithms. If all the cyclostationary signals have the same short period, it is in particular possible to use algorithms exploiting their cyclostationary nature. Such algorithms are described, for example, in the article, “Interference Rejection in Digital Wireless Communications”, IEEE Signal Processing Magazine, May 1997, pp. 37-62.
There is a need in these cellular mobile radio systems to be able to transmit data at a varying bit rate, in particular when the bit rate of the user itself varies (for example in the case of transmitting multimedia type data), or because, depending on the conditions for propagation of radio signals, a higher or lower degree of redundancy has to be introduced into the data to be transmitted in order to obtain a higher or lower degree of protection against transmission errors.
To increase the bit rate of data to be transmitted by a user for the same allocated frequency band (i.e. for the same duration Tc), allocating the user a plurality of codes of length Qm if the capacity of a single code of length Qm is exceeded is known per se.
A technique of the above kind has the particular disadvantage of leading to some complexity of implementation.
Another technique known per se, which avoids the above disadvantage, is to reduce the length of the code allocated to the user so that the user continues to transmit on only one code in order to increase the bit rate of the data to be transmitted by that user for the same allocated frequency band (i.e. for the same duration Tc). FIG. 3 summarizes the principle of a technique of this kind, and uses the same type of representation as FIGS. 1 and 2, but for two different bit rates of the incoming sequence, respectively identified by suffices 1 and 2, in this instance for three successive symbols dn, dn+1 and dn+2 of the incoming sequence, the symbol period corresponding to TS1 for symbol dn and Ts2 for symbols dn+1 and dn+2, and the code length corresponding to Q1 for symbol dn and Q2 for symbols dn+1 and dn+2.
A problem then arises due to the fact that a cellular mobile radio system may need to manage a plurality of users simultaneously whose instantaneous bit rates, and therefore whose spreading codes, are different and can separately take different values over time. The problem is that some algorithms, in particular decoding algorithms and especially the decoding algorithms referred to above, cannot, without modification, accept codes of different length for different users (whether at the same time or at different times).
A problem of the same kind would also arise in the case of allocating the same user a plurality of codes of different lengths.
A problem of the same kind would also arise in the case of allocating a user a code of variable length.